﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр) Виды объектов контактной информации
	///</summary>
	[DataContract]
	public enum ВидыОбъектовКонтактнойИнформации
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Справочник "Физические лица", контактные лица контрагентов, менеджеры
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"f3e8a4d9-73c7-4633-b081-e2c246f3877a\", \"Представление\":\"ФизическиеЛица\"}")]
		ФизическиеЛица = 0,//Справочник "Физические лица"
		[EnumMember(Value = "{\"Ссылка\":\"fefd8bd3-e758-4cb4-9b1f-19de8a4fafdd\", \"Представление\":\"КонтактныеЛица\"}")]
		КонтактныеЛица = 1,//Справочник "Контактные лица"
		[EnumMember(Value = "{\"Ссылка\":\"62c6afb2-baaf-40ad-befc-4a8c74de2522\", \"Представление\":\"Организации\"}")]
		Организации = 2,//Справочник "Организации"
		[EnumMember(Value = "{\"Ссылка\":\"89f2a762-75a9-4bc1-90b4-d002a325cbad\", \"Представление\":\"Пользователи\"}")]
		Пользователи = 3,//Справочник "Пользователи"
	///<summary>
	///Справочник контрагентов
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"89ec2487-3fbb-4b1a-98de-77660628f671\", \"Представление\":\"Контрагенты\"}")]
		Контрагенты = 4,//Справочник "Контрагенты"
		[EnumMember(Value = "{\"Ссылка\":\"77d2147b-628c-4332-b09b-fd1a7b0d154f\", \"Представление\":\"КонтактныеЛицаКонтрагентов\"}")]
		КонтактныеЛицаКонтрагентов = 5,//Справочник "Контактные лица контрагентов"
		[EnumMember(Value = "{\"Ссылка\":\"43845a8d-10a1-4382-86bb-bdf9c73c1c67\", \"Представление\":\"ЛичныеКонтакты\"}")]
		ЛичныеКонтакты = 6,//Справочник "Личные контакты"
	}
	public static partial class ВидыОбъектовКонтактнойИнформации_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Справочник "Физические лица", контактные лица контрагентов, менеджеры
		///</summary>
		public static readonly Guid ФизическиеЛица = new Guid("c2e281b0-f346-7a87-4633-73c7f3e8a4d9");//Справочник "Физические лица"
		public static readonly Guid КонтактныеЛица = new Guid("de191f9b-4f8a-ddaf-4cb4-e758fefd8bd3");//Справочник "Контактные лица"
		public static readonly Guid Организации = new Guid("8c4afcbe-de74-2225-40ad-baaf62c6afb2");//Справочник "Организации"
		public static readonly Guid Пользователи = new Guid("02d0b490-25a3-adcb-4bc1-75a989f2a762");//Справочник "Пользователи"
		///<summary>
		///Справочник контрагентов
		///</summary>
		public static readonly Guid Контрагенты = new Guid("6677de98-2806-71f6-4b1a-3fbb89ec2487");//Справочник "Контрагенты"
		public static readonly Guid КонтактныеЛицаКонтрагентов = new Guid("1afd9bb0-0d7b-4f15-4332-628c77d2147b");//Справочник "Контактные лица контрагентов"
		public static readonly Guid ЛичныеКонтакты = new Guid("f9bdbb86-3cc7-671c-4382-10a143845a8d");//Справочник "Личные контакты"
		public static ВидыОбъектовКонтактнойИнформации Получить(this ВидыОбъектовКонтактнойИнформации Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыОбъектовКонтактнойИнформации Получить(this ВидыОбъектовКонтактнойИнформации Значение, Guid Ссылка)
		{
			if(Ссылка == ФизическиеЛица)
			{
				return ВидыОбъектовКонтактнойИнформации.ФизическиеЛица;
			}
			else if(Ссылка == КонтактныеЛица)
			{
				return ВидыОбъектовКонтактнойИнформации.КонтактныеЛица;
			}
			else if(Ссылка == Организации)
			{
				return ВидыОбъектовКонтактнойИнформации.Организации;
			}
			else if(Ссылка == Пользователи)
			{
				return ВидыОбъектовКонтактнойИнформации.Пользователи;
			}
			else if(Ссылка == Контрагенты)
			{
				return ВидыОбъектовКонтактнойИнформации.Контрагенты;
			}
			else if(Ссылка == КонтактныеЛицаКонтрагентов)
			{
				return ВидыОбъектовКонтактнойИнформации.КонтактныеЛицаКонтрагентов;
			}
			else if(Ссылка == ЛичныеКонтакты)
			{
				return ВидыОбъектовКонтактнойИнформации.ЛичныеКонтакты;
			}
			return ВидыОбъектовКонтактнойИнформации.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыОбъектовКонтактнойИнформации Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыОбъектовКонтактнойИнформации Значение)
		{
			switch (Значение)
			{
				case ВидыОбъектовКонтактнойИнформации.ФизическиеЛица: return ФизическиеЛица;
				case ВидыОбъектовКонтактнойИнформации.КонтактныеЛица: return КонтактныеЛица;
				case ВидыОбъектовКонтактнойИнформации.Организации: return Организации;
				case ВидыОбъектовКонтактнойИнформации.Пользователи: return Пользователи;
				case ВидыОбъектовКонтактнойИнформации.Контрагенты: return Контрагенты;
				case ВидыОбъектовКонтактнойИнформации.КонтактныеЛицаКонтрагентов: return КонтактныеЛицаКонтрагентов;
				case ВидыОбъектовКонтактнойИнформации.ЛичныеКонтакты: return ЛичныеКонтакты;
			}
			return Guid.Empty;
		}
	}
}